A. Field of the Invention
This invention relates to the field of data processing in a telecommunications system, and more particularly to a system providing an interface between a serial communications link and a processor that is parallel in nature, such as a modem's central processing unit.
B. Description of Related Art and Advantages of the Invention
One piece of equipment often used in telecommunications systems is a UART, or Universal Asynchronous Receiver Transmitter. The UART is a device which interfaces a serial communications link to a microprocessor. When receiving data, the UART converts the serial link data (i.e., bits) into parallel data (i.e., bytes, words, etc.), which is then transferred to the microprocessor. When transmitting data, the UART converts parallel data from the processor into serial data.
UARTs are used in a variety of different types of telecommunications systems, including modems. In this example, the serial communication link may be an RS-232 serial cable connected to a data terminal equipment (DTE) and a data communications equipment (DCE), and the processor is a central processing unit (CPU) for the modem, such as a digital signal processor (DSP).
The efficiency overhead time spent by the DSP to service the UART's transmit(TX)/receive(RX) requests of the interface between the UART and the processor is critical for the overall performance of the system. Originally, the UART only had a storage capacity of one or two characters as received from the serial link, or transmitted by the CPU. When a character was received, the UART stored it in a temporary register (buffer). The UART either informed the processor that a character was read by issuing an interrupt signal to the processor, or the processor constantly polled (i.e., checked a data available status bit) the UART. Likewise, a single character buffer was found at the transmit (TX) side. This approach worked well until serial communication rates and processor workloads increased. The single character buffer was no longer sufficient. In particular, the "overhead" time spent by the CPU to store/retrieve characters from the UART of processor time per character was greater than the time to send the actual data on the serial link.
Consequently, a second prior art method was devised to reduce the average UART overhead. This method introduced an N-character deep first-in, first-out (FIFO) buffer in the UART. The processor was no longer interrupted on a character by character basis, but rather was interrupted every time the FIFO buffer collected N-characters. This method reduced average overhead more than the first method, but still required the processor to perform the task of moving the data from the UART into its own local memory, as well as requiring the UART to contain an embedded fixed depth local FIFO storage unit for the data to be TX'd/RX'd by the UART. With the advent of even higher communication rates and faster CPUs, this second method has also proven to be also inefficient.
Secondly, there is a need to detect special characters embedded within the data stream. Prior art methods provided for this detection through software means only. That is to say, the software controlling the UART must spend additional time/processing power to parse the data stream to determine if special characters are present.
This invention provides for a more efficient detection via a discrete hardware processing unit found within the UART. Characters can be specified through programmable registers found within the UART to provide additional flexibility in character choices.
The present invention provides a method and system for coupling the UART to the processor in a manner in which the processor is no longer involved in the data transfer from the UART to the processor, therefore it substantially reduces overhead on the processor. In addition, the invention no longer requires a fixed depth FIFO buffer arrangement embedded in the UART. As such, the present invention provides a much more efficient arrangement for transferring data between a serial communications link and a processor, allowing the entire system to operate at significantly faster rates than that obtained with known prior art methods. Further, a receive channel is provided in which control characters indicative of special control conditions are detected in a discrete hardware processing unit, not by the system processor. This further off-loads a substantial computational burden from the processor, enabling much higher data transfer rates between the UART and the processor.